文章目录
  1. 1. 更改navigationController push和pop界面切换动画

更改navigationController push和pop界面切换动画

NavigationController push pop Ios技术文章收录

 ### 更改navigationController push和pop界面切换动画

分类: iOS2012-05-22 09:52 981人阅读981人阅读 评论(0)评论(0) 收藏 举报
uiviewtransitionanimationnullcache
作者:longlongago 博客:http://blog.csdn.net/longlongago2000** 转帖请保留**

有时候我们需要自定义navigationController push和pop界面切换动画,用到的代码如下:

For Push:

[cpp] view plaincopy

  1. MainView *nextView=[[MainView alloc] init];  
  2. [UIView  beginAnimations:nil context:NULL];  
  3. [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];  
  4. [UIView setAnimationDuration:0.75];  
  5. [self.navigationController pushViewController:nextView animated:NO];  
  6. [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:self.navigationController.view cache:NO];  
  7. [UIView commitAnimations];  
  8. [nextView release];

  

For Pop:

方法一:

[cpp] view plaincopy

  1. [UIView  beginAnimations:nil context:NULL];  
  2. [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];  
  3. [UIView setAnimationDuration:0.75];  
  4. [UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:self.navigationController.view cache:NO];  
  5. [UIView commitAnimations];  
  6. [UIView beginAnimations:nil context:NULL];  
  7. [UIView setAnimationDelay:0.375];  
  8. [self.navigationController popViewControllerAnimated:NO];  
  9. [UIView commitAnimations];

  

方法二:

可实现左右滑动动画,可设置滑动方向。

[cpp] view plaincopy

  1. CATransition* transition = [CATransition animation];  
  2. transition.duration = 0.5;  
  3. transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];  
  4. transition.type = kCATransitionFade; //kCATransitionMoveIn; //, kCATransitionPush, kCATransitionReveal, kCATransitionFade  
  5. //transition.subtype = kCATransitionFromTop; //kCATransitionFromLeft, kCATransitionFromRight, kCATransitionFromTop, kCATransitionFromBottom  
  6. [self.navigationController.view.layer addAnimation:transition forKey:nil];  
  7. [[self navigationController] popViewControllerAnimated:NO];

  

具体的动画参数请自行更改。

OrderDetailController *orderDetailController = [[OrderDetailControlleralloc] init];

    orderDetailController.orderId = self.orderId;

    orderDetailController.orderNo = self.orderNo;

    orderDetailController.view.tag = 1;

    CATransition* transition = [CATransitionanimation];

    transition.duration = 0.4;

    transition.timingFunction = [CAMediaTimingFunctionfunctionWithName:kCAMediaTimingFunctionEaseInEaseOut];

    transition.type = kCATransitionPush;

    transition.subtype = kCATransitionFromLeft;

    [self.navigationController.view.layeraddAnimation:transition forKey:nil];  

    [[selfnavigationController] pushViewController:orderDetailController animated:NO];

文章目录
  1. 1. 更改navigationController push和pop界面切换动画